package com.gopay.common.domain.cbrmb.internationalcard;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Version;

import com.gopay.common.domain.BaseEntity;

/**
 * 跨境人民币外卡运单表
 * 
 * @author nierongzhang
 * @2018-2-9 上午11:28:15 www.gopay.com.cn Inc.All rights reserved
 */
@Entity
@Table(name = "CB_RMB_INTL_CARD_WAYBILL")
public class IntlCardWaybill extends BaseEntity {

	/**
	 * serialVersionUID
	 */
	private static final long serialVersionUID = -1148815437110167835L;

	/**
	 * 记录流水号
	 */
	private Integer sq;

	/**
	 * 国付宝订单号
	 */
	private String gopayOrderId;

	/**
	 * 商户订单号
	 */
	private String merOrderId;

	/**
	 * 配送单号
	 */
	private String expressNo;

	/**
	 * 配送公司代码
	 */
	private Integer expressCode;

	/**
	 * 配送公司
	 */
	private String expressCompany;

	/**
	 * 客户ID
	 */
	private String custId;

	/**
	 * 创建时间
	 */
	private Date createdTs;

	/**
	 * 最后修改时间
	 */
	private Date lastUpdTs;

	/**
	 * 配送时间
	 */
	private Date expressDate;

	/**
	 * 预计妥投时间
	 */
	private Date etaDate;

	/**
	 * 上传时间
	 */
	private Date uploadDate;

	/**
	 * 是否上传成功：0为成功，1为失败
	 */
	private String isSuccess;

	/**
	 * 查单网址
	 */
	private String expressUrl;

	/**
	 * 乐观锁版本号
	 */
	private int version;

	/**
	 * 批次号
	 */
	private String batchId;

	/**
	 * 上传失败信息
	 */
	private String failInfo;

	/**
	 * 配送时间填写信息
	 */
	private String expressDateStr;

	/**
	 * 预计投妥时间填写信息
	 */
	private String etaDateStr;
	
    /**
     *  删除标识 0删除，1未删除
     */
    private Integer isDelete;
    
    /**
     *  数据来源 0-portal 1-网关
     */
    private Integer dataSource;

	@Id
	@SequenceGenerator(name = "IntlCardWaybillSequence", sequenceName = "CB_RMB_INTL_CARD_WAYBILL_SEQ")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "IntlCardWaybillSequence")
	@Column(name = "SQ", unique = true, nullable = false)
	public Integer getSq() {
		return sq;
	}

	public void setSq(Integer sq) {
		this.sq = sq;
	}

	@Column(name = "GOPAY_ORDER_ID")
	public String getGopayOrderId() {
		return gopayOrderId;
	}

	public void setGopayOrderId(String gopayOrderId) {
		this.gopayOrderId = gopayOrderId;
	}

	@Column(name = "MER_ORDER_ID")
	public String getMerOrderId() {
		return merOrderId;
	}

	public void setMerOrderId(String merOrderId) {
		this.merOrderId = merOrderId;
	}

	@Column(name = "EXPRESS_NO")
	public String getExpressNo() {
		return expressNo;
	}

	public void setExpressNo(String expressNo) {
		this.expressNo = expressNo;
	}

	@Column(name = "EXPRESS_CODE")
	public Integer getExpressCode() {
		return expressCode;
	}

	public void setExpressCode(Integer expressCode) {
		this.expressCode = expressCode;
	}

	@Column(name = "EXPRESS_COMPANY")
	public String getExpressCompany() {
		return expressCompany;
	}

	public void setExpressCompany(String expressCompany) {
		this.expressCompany = expressCompany;
	}

	@Column(name = "EXPRESS_DATE")
	public Date getExpressDate() {
		return expressDate;
	}

	public void setExpressDate(Date expressDate) {
		this.expressDate = expressDate;
	}

	@Column(name = "ETA_DATE")
	public Date getEtaDate() {
		return etaDate;
	}

	public void setEtaDate(Date etaDate) {
		this.etaDate = etaDate;
	}

	@Column(name = "UPLOAD_DATE")
	public Date getUploadDate() {
		return uploadDate;
	}

	public void setUploadDate(Date uploadDate) {
		this.uploadDate = uploadDate;
	}

	@Column(name = "IS_SUCCESS")
	public String getIsSuccess() {
		return isSuccess;
	}

	public void setIsSuccess(String isSuccess) {
		this.isSuccess = isSuccess;
	}

	@Column(name = "EXPRESS_URL")
	public String getExpressUrl() {
		return expressUrl;
	}

	public void setExpressUrl(String expressUrl) {
		this.expressUrl = expressUrl;
	}

	@Column(name = "CUST_ID")
	public String getCustId() {
		return custId;
	}

	public void setCustId(String custId) {
		this.custId = custId;
	}

	@Column(name = "CREATED_TS")
	public Date getCreatedTs() {
		return createdTs;
	}

	public void setCreatedTs(Date createdTs) {
		this.createdTs = createdTs;
	}

	@Column(name = "LAST_UPD_TS")
	public Date getLastUpdTs() {
		return lastUpdTs;
	}

	public void setLastUpdTs(Date lastUpdTs) {
		this.lastUpdTs = lastUpdTs;
	}

	@Version
	@Column(name = "VERSION")
	public int getVersion() {
		return version;
	}

	public void setVersion(int version) {
		this.version = version;
	}

	@Column(name = "BATCH_ID")
	public String getBatchId() {
		return batchId;
	}

	public void setBatchId(String batchId) {
		this.batchId = batchId;
	}

	@Column(name = "FAIL_INFO")
	public String getFailInfo() {
		return failInfo;
	}

	public void setFailInfo(String failInfo) {
		this.failInfo = failInfo;
	}

	@Column(name = "EXPRESS_DATE_STR")
	public String getExpressDateStr() {
		return expressDateStr;
	}

	public void setExpressDateStr(String expressDateStr) {
		this.expressDateStr = expressDateStr;
	}

	@Column(name = "ETA_DATE_STR")
	public String getEtaDateStr() {
		return etaDateStr;
	}

	public void setEtaDateStr(String etaDateStr) {
		this.etaDateStr = etaDateStr;
	}

	@Column(name = "IS_DELETE")
    public Integer getIsDelete() {
        return isDelete;
    }

    public void setIsDelete(Integer isDelete) {
        this.isDelete = isDelete;
    }

    @Column(name = "DATA_SOURCE")
    public Integer getDataSource() {
        return dataSource;
    }

    public void setDataSource(Integer dataSource) {
        this.dataSource = dataSource;
    }


	
}
